{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Motion Retargeting\n",
    "### The BVH file format\n",
    "The Biovision Hierarchy (BVH) format stores animation data. It provides the information to construct a character and the pose of this character at each frame of the animation. The character is animated using a skeleton, a hierarchical structure composed of joints. The sense of motion comes from changes on the orientation (and sometimes translation) of these joints.\n",
    "\n",
    "The BVH file is divided into two sections: the header, identified by the keyword HIERARCHY, and the body, identified by MOTION. The header holds the skeleton hierarchy definition, i.e., the distance between each joint. The body section contains the animation, each line represents one frame in the animation, and it contains the orientation (and translation) at that frame. \n",
    "\n",
    "Except for the root joint, the first one in the hierarchy that often represents the hips, every joint has a parent joint. The values stored by the BVH file are relative to the parent joint, in order words, the orientation of a joint in a given frame is the local coordinate system of that joint in respect to its parent joint coordinate system. Furthermore, the orientation at a given frame represents the rotation from the base pose to its current position - and not from the last frame.\n",
    "\n",
    "### Import Libraries"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import os\n",
    "import numpy as np\n",
    "import matplotlib.pyplot as plt"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### The Joint and Animation Class\n",
    "Motion Retargeting process transfer motion between two skeletons. It is defined as the Animation Class to hold the information of each skeleton animation. The most important parameters of an Animation object is the name of the animation and a reference to the root joint of the skeleton.\n",
    "\n",
    "A Joint object contains a reference to its parent (except for the root), its children and the orientation and translation at each frame. Given the root joint, any joint is reachable recursively."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "class Animation:\n",
    "    def __init__(self, filename, root):\n",
    "        self.name = filename\n",
    "        self.root = root\n",
    "        self.listofjoints = []\n",
    "        self.surfaceinfo = []\n",
    "        self.skeletonmap = []\n",
    "        self.frames = None\n",
    "        self.frametime = None\n",
    "    \n",
    "    def getlistofjoints(self):\n",
    "        \"\"\"\n",
    "        Get list of joints in the animation\n",
    "        \"\"\"\n",
    "        if not self.listofjoints:\n",
    "            self.listofjoints = self.__auxgetlist(None, [])\n",
    "        return self.listofjoints\n",
    "            \n",
    "    def __auxgetlist(self, joint=None, listofjoints = []):\n",
    "        \"\"\"\n",
    "        Create and return list of joints in the animation\n",
    "        \"\"\"\n",
    "        if not joint:\n",
    "            joint = self.root\n",
    "        listofjoints.append(joint)\n",
    "        for child in joint.children:\n",
    "            self.__auxgetlist(child, listofjoints)\n",
    "        if joint == self.root:\n",
    "            return listofjoints\n",
    "        \n",
    "    def getJoint(self, jointname):\n",
    "        \"\"\"\n",
    "        Find the joint with jointname in the animation hierarchy\n",
    "        \"\"\"\n",
    "        return self.root.getByName(jointname)\n",
    "    \n",
    "class Joints:\n",
    "    def __init__(self, name, depth=0, parent=None):\n",
    "        self.name = name\n",
    "        self.depth = depth\n",
    "        self.children = []\n",
    "        self.parent = parent\n",
    "        self.endsite = []\n",
    "        self.translation = []\n",
    "        self.rotation = []\n",
    "        self.order = []\n",
    "        self.length = []\n",
    "        self.baserotation = []\n",
    "        if self.parent:\n",
    "            self.parent.addChild(self)\n",
    "            \n",
    "    def __iter__(self):\n",
    "        for child in self.children:\n",
    "            yield child\n",
    "            \n",
    "    def __reversed__(self):\n",
    "        while self.parent:\n",
    "            yield self.parent\n",
    "            self = self.parent\n",
    "            \n",
    "    def addChild(self, item):\n",
    "        \"\"\"\n",
    "        Called after initialization of every joint except root\n",
    "        \"\"\"\n",
    "        item.parent = self\n",
    "        self.children.append(item)\n",
    "        \n",
    "    def addOffset(self, offset):\n",
    "        self.offset = offset\n",
    "        \n",
    "    def addEndSite(self, endsite=None):\n",
    "        self.endsite = endsite\n",
    "        self.endsiteposition = []\n",
    "        \n",
    "    def getLastDepth(self, depth, jointsInDepth = []):\n",
    "        \"\"\"\n",
    "        Returns the last joint initializated with the depth provided\n",
    "        \"\"\"\n",
    "        if depth==0:\n",
    "            return self\n",
    "        else:\n",
    "            for child in self.children:\n",
    "                if child.depth == depth:\n",
    "                    jointsInDepth.append(child)\n",
    "                child.getLastDepth(depth, jointsInDepth)\n",
    "            return jointsInDepth[-1]\n",
    "        \n",
    "    def getDepth(self):\n",
    "        depth = 0\n",
    "        joint = self\n",
    "        if joint.parent:\n",
    "            while joint.parent:\n",
    "                depth = depth + 1\n",
    "                joint = joint.parent\n",
    "        return depth\n",
    "    \n",
    "    def getByName(self, name):\n",
    "        \"\"\"\n",
    "        Returns the joint object with the provided name\n",
    "        \"\"\"\n",
    "        if self.name == name:\n",
    "            return self\n",
    "        for child in self.children:\n",
    "            if child.name == name:\n",
    "                return child\n",
    "            else:\n",
    "                found = child.getByName(name)\n",
    "                if found:\n",
    "                    return found\n",
    "                \n",
    "    def printHierarchy(self, hierarchy=[]):\n",
    "        \"\"\"\n",
    "        Print hierarchy\n",
    "        \"\"\"\n",
    "        flag = False\n",
    "        if len(hierarchy)==0:\n",
    "            flag = True\n",
    "        #hierarchy.append(str.format(\"%s%s %s\" % (' '*2*int(self.depth),self.name, self.offset)))\n",
    "        print(\"%s%s %s\" % (' '*2*int(self.depth),self.name, self.offset))\n",
    "        try:\n",
    "            if len(self.endsite)>0:\n",
    "                #hierarchy.append(\"%s%s %s\" % (' '*2*(int(self.depth+1)),\"End Site\", self.endsite))\n",
    "                print(\"%s%s %s\" % (' '*2*(int(self.depth+1)),\"End Site\", self.endsite))\n",
    "        except:\n",
    "            pass\n",
    "        for child in self.children:\n",
    "            child.printHierarchy(hierarchy)\n",
    "        if flag:\n",
    "            return hierarchy"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": true
   },
   "source": [
    "### Prepare BVH file conversion"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "def GetBVHDataFromFile(path):  \n",
    "    \n",
    "    def GetMotionLine(joint, frame, translation=[], rotation=[]):\n",
    "        \"\"\"\n",
    "        Get rotation and translation data for the joint at the given frame.\n",
    "        \"\"\"\n",
    "        translation.append(frame.split(' ')[len(translation)*6:len(translation)*6+3])\n",
    "        rotation.append(frame.split(' ')[len(rotation)*6+3:len(rotation)*6+6])\n",
    "        joint.translation.append(translation[-1])\n",
    "        joint.rotation.append(rotation[-1])\n",
    "        for child in joint.children:\n",
    "            GetMotionLine(child,frame, translation, rotation)\n",
    "        return translation, rotation\n",
    "    \n",
    "    def Motion2NP(joint):\n",
    "        \"\"\"\n",
    "        Transform rotation and position into numpy arrays\n",
    "        \"\"\"\n",
    "        joint.translation = np.asarray(joint.translation, float)\n",
    "        joint.rotation = np.asarray(joint.rotation, float)\n",
    "        joint.offset = np.asarray(joint.offset.split(' '),float)\n",
    "        if joint.order==\"ZXY\":\n",
    "            aux = np.copy(joint.rotation[:,0])\n",
    "            joint.rotation[:,0] = np.copy(joint.rotation[:,1])\n",
    "            joint.rotation[:,1] = np.copy(joint.rotation[:,2])\n",
    "            joint.rotation[:,2] = np.copy(aux)\n",
    "        if joint.endsite:\n",
    "            joint.endsite = np.asarray(joint.endsite.split(' '),float)\n",
    "        for child in joint:\n",
    "            Motion2NP(child)\n",
    "    \n",
    "    with open(path) as file:\n",
    "        data = [line for line in file]\n",
    "    offsetList = []\n",
    "    listofjoints = []\n",
    "    flagEndSite = False\n",
    "    for line in data:\n",
    "        if line.find(\"ROOT\") >= 0:\n",
    "            #Creates root joint\n",
    "            root = Joints(name = line[5:-1])\n",
    "            lastJoint = root\n",
    "            listofjoints.append(line[5:-1])\n",
    "            #Create the object of this file\n",
    "            filename = os.path.basename(path)[:-4]\n",
    "            bvhfile = Animation(filename, root)\n",
    "        if line.find(\"JOINT\") >= 0:\n",
    "            depth = line.count('\\t')\n",
    "            if depth == 0:\n",
    "                depth = line[:line.find('JOINT')].count(' ')/2\n",
    "            parent = root.getLastDepth(depth-1)\n",
    "            #Creates joint\n",
    "            lastJoint = Joints(name = line[line.find(\"JOINT\")+6:-1], depth=depth, parent=parent)\n",
    "            listofjoints.append(line[line.find(\"JOINT\")+6:-1])\n",
    "        if line.find(\"End Site\") >= 0:\n",
    "            flagEndSite = True\n",
    "            listofjoints.append(\"End Site\")\n",
    "        if (line.find(\"OFFSET\") >= 0) and (not flagEndSite):\n",
    "            lastJoint.addOffset(line[line.find(\"OFFSET\")+7:-1])\n",
    "            offsetList.append(line[line.find(\"OFFSET\")+7:-1])\n",
    "        elif (line.find(\"OFFSET\") >= 0) and (flagEndSite):\n",
    "            lastJoint.addEndSite(line[line.find(\"OFFSET\")+7:-1])\n",
    "            flagEndSite = False\n",
    "        if (line.find(\"CHANNELS\")) >= 0:\n",
    "            X = line.find(\"Xrotation\")\n",
    "            Y = line.find(\"Yrotation\")\n",
    "            Z = line.find(\"Zrotation\")\n",
    "            if Z < X and X < Y:\n",
    "                lastJoint.order = \"ZXY\"\n",
    "            elif X < Y and Y < Z:\n",
    "                lastJoint.order = \"XYZ\"\n",
    "            else:\n",
    "                lastJoint.order(\"XYZ\")\n",
    "                print(\"Invalid Channels order. XYZ chosen.\")\n",
    "        if (line.find(\"MOTION\")) >= 0:\n",
    "            index = data.index('MOTION\\n')\n",
    "            frames = data[index+3:]\n",
    "            bvhfile.frames = int(data[index+1][8:])\n",
    "            bvhfile.frametime = float(data[index+2][12:])\n",
    "            break\n",
    "    #Go to the next line\n",
    "    for counter in range(len(frames)):\n",
    "        GetMotionLine(root, frames[counter], translation=[], rotation=[])\n",
    "    #Convert values to numpy array\n",
    "    Motion2NP(bvhfile.root)\n",
    "    return bvhfile"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Read BVH file"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "C:\\Users\\Rodolfo\\Desktop\\IA369\\dev\\sampledata\n"
     ]
    }
   ],
   "source": [
    "filename = 'RodolfoClaping.bvh'\n",
    "currentdir = os.getcwd()\n",
    "datapath = os.path.join(currentdir, 'sampledata')\n",
    "fullpath = os.path.join(datapath, filename)\n",
    "print(fullpath)\n",
    "#animation = GetBVHDataFromFile(fullpath)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Check the animation name and reference to the root joint"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 69,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Animation name: RodolfoClaping. Type: <class '__main__.Animation'>\n",
      "Animation root: Hips. Type: <class '__main__.Joints'>\n",
      "Number of joints: 30\n"
     ]
    }
   ],
   "source": [
    "print('Animation name: %s. Type: %s' % (animation.name, type(animation)))\n",
    "print('Animation root: %s. Type: %s' % (animation.root.name, type(animation.root)))\n",
    "print('Number of joints: %i' % (len(animation.getlistofjoints())))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Print the name of the joints and their distance from parents recursively"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 70,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Hips [  5.04731  94.866    -7.60916]\n",
      "  Spine [  0.       15.3684   -2.40487]\n",
      "    Spine1 [ 0.       9.79164  0.     ]\n",
      "      Spine2 [ 0.       9.79164  0.     ]\n",
      "        Spine3 [ 0.       9.79164  0.     ]\n",
      "          Neck [  0.       12.5893    1.25893]\n",
      "            Neck1 [ 0.     4.095  0.   ]\n",
      "              Head [ 0.     4.095  0.   ]\n",
      "                End Site [ 0.       9.72808  0.     ]\n",
      "          RightShoulder [ 0.       8.99232  5.27092]\n",
      "            RightArm [  0.      21.4762   0.    ]\n",
      "              RightForeArm [  0.      30.4806   0.    ]\n",
      "                RightHand [  0.      25.7941   0.    ]\n",
      "                  RightHandThumb1 [-3.10387  3.51294  2.61218]\n",
      "                    End Site [ 0.  0.  0.]\n",
      "                  RightHandMiddle1 [ 0.         9.36783   -0.0600502]\n",
      "                    End Site [ 0.  0.  0.]\n",
      "          LeftShoulder [ 0.       8.99232  5.27092]\n",
      "            LeftArm [  0.      21.4762   0.    ]\n",
      "              LeftForeArm [  0.      30.4806   0.    ]\n",
      "                LeftHand [  0.      25.7941   0.    ]\n",
      "                  LeftHandThumb1 [ 3.10387  3.51294  2.61218]\n",
      "                    End Site [ 0.  0.  0.]\n",
      "                  LeftHandMiddle1 [ 0.         9.36783   -0.0600502]\n",
      "                    End Site [ 0.  0.  0.]\n",
      "  RightUpLeg [-10.4733   0.       0.    ]\n",
      "    RightLeg [  0.     -45.8208   0.    ]\n",
      "      RightFoot [  0.     -45.0804   0.    ]\n",
      "        RightForeFoot [ 0.      -4.41419  0.     ]\n",
      "          RightToeBase [  0.       0.      17.2874]\n",
      "            End Site [ 0.       0.       5.58569]\n",
      "  LeftUpLeg [ 10.4733   0.       0.    ]\n",
      "    LeftLeg [  0.     -45.8208   0.    ]\n",
      "      LeftFoot [  0.     -45.0804   0.    ]\n",
      "        LeftForeFoot [ 0.      -4.41419  0.     ]\n",
      "          LeftToeBase [  0.       0.      17.2874]\n",
      "            End Site [ 0.       0.       4.94953]\n"
     ]
    }
   ],
   "source": [
    "_ = animation.root.printHierarchy()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Animation\n",
    "The only translational joint of the hierarchy is the hips joint, or root, so that the character is able to move accros the volume. All the other joints are usually revolute, slot or spherical joints with 1, 2 and 3 degrees of freedom, respectively."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 111,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(-0.94941374338624307, 0.80537625661375767)"
      ]
     },
     "execution_count": 111,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x11b415b0>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig = plt.figure(figsize=(12,8))\n",
    "ax1 = fig.add_subplot(221)\n",
    "ax1.set_xlabel('Frames')\n",
    "ax1.set_ylabel('Translation')\n",
    "\n",
    "for joint in animation.getlistofjoints():\n",
    "    if joint.name != 'Hips':\n",
    "        plt.plot(joint.translation - np.mean(joint.translation, axis=0))\n",
    "        \n",
    "ax2 = fig.add_subplot(222)\n",
    "plt.plot(animation.root.translation - np.mean(animation.root.translation, axis=0))\n",
    "\n",
    "mini,maxi = np.min(animation.root.translation - np.mean(animation.root.translation, axis=0)), np.max(animation.root.translation - np.mean(animation.root.translation, axis=0))\n",
    "\n",
    "#ax1.set_ylim(mini,maxi)\n",
    "ax2.set_ylim(mini,maxi)"
   ]
  }
 ],
 "metadata": {
  "anaconda-cloud": {},
  "kernelspec": {
   "display_name": "Python [conda env:Anaconda3]",
   "language": "python",
   "name": "conda-env-Anaconda3-py"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.6"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
